package com.itheima.suanfa;
/*
二分查找
在数组{1,2,3,4,5,6,7,8,9,10}中,查找某个元素的位置
 */
public class BinarySearchDemo {
    public static void main(String[] args) {
        //定义数组
        int [] arr={1,2,3,4,5,6,7,8,9,10};
        //调用方法  获取结果
        int index = binarySearch(arr, 7);
        System.out.println(index);

    }

    //定义一个方法完成 二分查找
    //从数组中找元素的位置
    //参数   数组 int[] arr 需要找的元素元素 int  number
    //返回值类型 int
    public static int binarySearch(int[] arr,int number){
        //二分查找
        //1.定义两个索引  start0   end 长度-1
        int start=0;
        int end=arr.length-1;
        while (start<=end) {//死循环的条件 start <=end
            //2.获取到中间索引  (start+end)/2
            int mid=(start+end)/2;
            //3.判断 元素和数据关系  大了  在右边
            if(number>arr[mid]){//4.start=中间+1
                start=mid+1;
            }else if(number<arr[mid]){
                //	小了 在左边 	4.end=中间-1
                end=mid-1;
            }else {
                return mid;
            }
        }
        //5重复234
        return -1;
    }
}
